package com.demo.expertsystemdemo.mqtt.entity;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @author lzb22
 */
@Data
@Component
@ConfigurationProperties(prefix = "mqtt.config")
public class Config {
    /**
     * tcp://ip:port
     */
    private String[] host;
    /**
     * 超时时间，单位：秒
     */
    private int timeout;
    /**
     * 心跳时间，秒
     */
    private int kepAliveInterval;
    /**
     * qos设置，和topic一一对应
     */
    private int[] qos;
    /**
     * 主题，和qos一一对应
     */
    private String[] topics;
    /**
     * 账号
     */
    private String username;
    /**
     * 密码
     */
    private String password;
    /**
     * clientId后是否添加本机ip
     */
    private Boolean clientIdAppendIp;
    /**
     * consumer clientId
     */
    private String consumerClientId;

    /**
     * 消费者默认主题
     */
    private String consumerDefaultTopic;
    /**
     * producer clientId
     */
    private String producerClientId;
    /**
     * 生产者默认主题
     */
    private String producerDefaultTopic;

    /**
     * 是否异步发送消息
     */
    private Boolean async;
    /**
     * 是否自动重连
     */
    private Boolean automaticReconnect;
    /**
     * 是否清除session
     */
    private Boolean cleanSession;
    /**
     * max inflight
     */
    private Integer maxInflight;

}
